package com.codeduck.bean.config;

import com.codeduck.bean.entity.BeanLifeCycleI;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 1. @Configuration: 使用该注解时，配置类将自动注入IOC容器，用来替换Spring中xml文件的配置，
 * 被注解的类内部包含有一个或多个被@Bean注解的方法，会被AnnotationConfigApplicationContext
 * 或 AnnotationConfigWebApplicationContext 类进行扫描，并用于构建bean定义，初始化Spring容器。
 *
 * 2. 配置类测试地址 {@link com.codeduck.bean.BeanLifeCycleTest#beanLifeCycleConfigTest01()}
 *
 * @author: <a href="mailto:codeduck@163.com">Codeduck</a>
 * @since: 2021-12-23
 */
@Configuration
public class BeanLifeCycleConfigI {

    /**
     * @Bean 注入 {@link com.codeduck.bean.entity.BeanLifeCycleI}
     *  通过注解内 ‘initMethod’ 和 ‘destroyMethod’来指定 被注入 Bean 的初始化和销毁方法
     *
     **/
    @Bean(initMethod = "init", destroyMethod = "destroy")
    public BeanLifeCycleI beanLifeCycleI() {
        return new BeanLifeCycleI();
    }
}
